
/**
 * BigDecimal 是Java提供的一个用于精确计算的类，属于 java.math 包。
 * BigDecimal 的特点：
 * 高精度：BigDecimal 可以提供任意精度的定点数和浮点数计算。
 * 不可变对象：BigDecimal 的实例是不可变的，这意味着一旦创建了一个 BigDecimal 对象，它的值就不能被改变。这使得 BigDecimal 对象在多线程环境中安全使用而不需要同步。
 * 模式：BigDecimal 提供了包括四舍五入在内的多种舍入模式。
*/
import java.math.BigDecimal;

/**
 * Java中的基础数据类型可以分为以下几类：
 * 1. **整数类型**：
   - `byte`：8位有符号整数，取值范围从 -128 到 127。
   - `short`：16位有符号整数，取值范围从 -32,768 到 32,767。
   - `int`：32位有符号整数，默认的整数类型，取值范围从 -2^31 到 2^31-1（-2147483648 到 2147483647）。
   - `long`：64位有符号整数，取值范围从 -2^63 到 2^63-1。在数值后加上 `L` 或 `l` 来表示。
   2. **浮点数类型**：
   - `float`：32位单精度浮点数。在数值后加上 `F` 或 `f` 来表示。
   - `double`：64位双精度浮点数，默认的浮点数类型。
    3. **字符类型**：
   - `char`：16位Unicode字符，可以存储任何字符。
    4. **布尔类型**：
   - `boolean`：只有两个可能的值：`true` 和 `false`。
    5. **引用类型**：
   - 虽然严格来说不是基础数据类型，但Java中的类（class）和接口（interface）也是数据类型的一种，它们可以引用对象。
    
   这些基础数据类型在内存中都有固定的存储大小和取值范围，
   并且Java虚拟机会为这些类型提供自动的装箱（boxing）和拆箱（unboxing）操作，
   即在基本类型和对应的包装类之间转换。
   例如，`int` 类型可以自动转换为 `Integer` 类型，反之亦然。
*/

public class PrimaryTypes {
    public static void main(String[] args) {
        byte byteVar = 100;
        System.out.println(byteVar); //100

        short shortVar = 30000;
        System.out.println(shortVar); //30000

        int intVar = 1000000000;
        System.out.println(intVar); //1000000000

        long longVar = 80000000000L;
        System.out.println(longVar); //80000000000

        float floatVar = 100.0000000666F;
        System.out.println(floatVar); //100.0

        double doubleVar = 100.0000000666;
        System.out.println(doubleVar); //100.0000000666

        boolean booleanVar = true;
        System.out.println(booleanVar); //true

        char charVar = 'a';
        System.out.println(charVar); //a

    }
}
